version: "3.5"

# Docker compose файл для сборки и запуска сервера с погодой
# Порты и версии можно конфигурировать через .env файл

services:
  # Сервис с базой данных
  postgres_db:
    image: postgres:${POSTGRESQL_VERSION}
    restart: always
    environment:
      - POSTGRES_DB=postgres
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=postgres
      - POSTGRES_ROOT_PASSWORD=postgres
    shm_size: 4g
    ports:
      - "${PG_PUB_PORT}:5432"
    healthcheck:
      test: pg_isready -U postgres -p 5432
      interval: 12s
      start_period: 10s
      timeout: 8s
      retries: 4
    volumes:
      - wserver:/var/lib/postgresql/data
    networks:
      - backend

  # Наш бэкенд сервер с погодой
  wserver:
    build:
      context: .
      dockerfile: Dockerfile
    restart: always
    depends_on:
      postgres_db:
        condition: service_healthy
    environment:
      SERVER_PG_URL: postgres://postgres:postgres@postgres_db:5432/postgres
    ports:
      - "${WSERVER_PUB_PORT}:8088"
    networks:
      - backend

volumes:
  wserver:


networks:
  backend:
